package States;

public class IntroGameState implements IGameState {
	
	//Attributes
	private GameStateMachine _gameSM = null;

	private IGameState _nextState = null;
	
	private boolean _startGame = false;
	
	@Override
	public void Run() {
		// TODO Render Intro Screen
		
		if(this._startGame)
		{
			//User pressed start button
			//Proceed to next state
			
			//Not required to pass additional information from this state to the next
			this._nextState.Init();
			this._gameSM.SetCurrentGameState(this._nextState);
		}

	}

	@Override
	public void SetStateMachine(GameStateMachine targetSM) {
		// TODO Auto-generated method stub
		this._gameSM = targetSM;
	}

	@Override
	public GameStateMachine GetStateMachine() {
		// TODO Auto-generated method stub
		return this._gameSM;
	}

	@Override
	public void Init(IGameState previousState) {
		// Nothing to do

	}

	@Override
	public void Init() {
		// Initialize Game Screen and internal data structures
		//Prepare the next state
		this._nextState = new SetupGameState();
		this._nextState.SetStateMachine(this._gameSM);
	}

	@Override
	public void Finalize() {
		// TODO Auto-generated method stub

	}

}
